<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<div class="wrap">
    <div class="header">header</div>
    <div class="content">content</div>
    <div class="footer">footer</div>
</div>

<script>
// 需求：1秒后起床，再过2秒后上课，再过3秒后干饭
// setTimeout(()=>{
//     console.log( '起床啦~' )
//     setTimeout(()=>{
//         console.log( '上课啦~' )
//         setTimeout(()=>{
//             console.log( '干饭啦~' )
//         },3000)
//     },2000)
// },1000)
// 回调地狱

// 同步程序按书写顺序依次执行
// console.log( '同步 1' )
// console.log( '同步 2' )
// console.log( '同步 3' )


// 创建promise对象
console.log( '同步 1' )
let p1 = new Promise((resolve,reject)=>{// 这个函数不是异步程序
    console.log( '开始执行了。。。' )
    // console.log( resolve )// ƒ () { [native code] }
    // console.log( reject )// ƒ () { [native code] }

    if (123) {
        // 异步执行成功
        resolve('成功')//该函数执行后，当前promise对象状态变成 '成功'
    } else {
        // 异步执行失败
        reject('失败')//该函数执行后，当前promise对象状态变成 '失败'
    }
    
    console.log( '执行结束了。。。' )
})
console.log( p1 )// Promise {<fulfilled>: "成功"}

// 监听promise对象状态变化
p1.then(()=>{// then里面的回调函数是异步程序
    // 当promise对象的状态为成功时执行该函数
    console.log( '状态为 成功' )
},()=>{
    // 当promise对象的状态为失败时或promise内部出错时执行该函数
    console.log( '状态为 失败' )
})

console.log( '同步 2' )

</script>
</body>
</html>